﻿using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using CHILIS.Componentes.CoreRestaurant.Model.Adquicisiones;

namespace CHILIS.Componentes.CoreRestaurant.Logic.Facade
{
    public static class OrdenCompra
    {


        /// <summary>
        /// Reporte de Orden de Compra
        /// </summary>
        /// <param name="numeroOc">numero de Orden de Compra</param>
        /// <returns>datos de la Orden de Compra con la lista de insumos</returns>
        public static List<OrdenCompraModel> RptOrdenCompraXNumeroOrden(int numeroOc)
        {
            var listado = new List<OrdenCompraModel>();

            using (var data = new AdquicisionesDataContext())
            {

                System.Data.Linq.ISingleResult<AD_RptOrdenCompra> listaSp = data.GET_ORDEN_COMPRA(numeroOc);

                listado.AddRange(listaSp.Select(adRptOrdenCompra => new OrdenCompraModel
                                                                        {
                                                                            CodigoProveedor = adRptOrdenCompra.CODIGO_PROVEEDOR,
                                                                            Proveedor = adRptOrdenCompra.PROVEEDOR,
                                                                            NroOc = adRptOrdenCompra.NRO_OC.ToString(CultureInfo.InvariantCulture),
                                                                            FechaGeneracion = adRptOrdenCompra.FECHA_GENERACION,
                                                                            FechaEntrega = adRptOrdenCompra.FECHA_ENTREGA,
                                                                            SubTotal = adRptOrdenCompra.SUBTOTAL,
                                                                            Igv = adRptOrdenCompra.IGV,
                                                                            Total = adRptOrdenCompra.TOTAL,
                                                                            Moneda = adRptOrdenCompra.MONEDA,
                                                                            EstadoOc = adRptOrdenCompra.ESTADO_OC,
                                                                            NumeroItem = adRptOrdenCompra.NUMERO_ITEM,
                                                                            DescripcionInsumo = adRptOrdenCompra.DESCRIPCION_INSUMO,
                                                                            Precio = adRptOrdenCompra.PRECIO,
                                                                            Cantidad = adRptOrdenCompra.CANTIDAD,
                                                                            Monto = adRptOrdenCompra.MONTO,
                                                                            Ruc = adRptOrdenCompra.RUC,
                                                                            ProveedorDireccion =adRptOrdenCompra.PROVEEDOR_DIRECCION,
                                                                            ProveedorCiudad = adRptOrdenCompra.PROVEEDOR_CIUDAD,
                                                                            ProveedorTelefono = adRptOrdenCompra.PROVEEDOR_TELEFONO,
                                                                            FormaPago = adRptOrdenCompra.FORMA_PAGO,
                                                                            AprobadoPor = adRptOrdenCompra.APROBADO_POR,
                                                                            Observaciones = adRptOrdenCompra.OBSERVACIONES,
                                                                            Envio = adRptOrdenCompra.ENVIO
                                                                        }));
                listaSp.Dispose();

            }

            return listado;





        }

    }
}
